app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
↳ QTRS
↳ Non-Overlap Check
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(app2(rev1, y), l)
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(rev1, y)
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(rev1, x), l)
APP2(rev, app2(app2(cons, x), l)) -> APP2(rev2, x)
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(rev2, x), l)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(app2(rev2, y), l)
APP2(rev, app2(app2(cons, x), l)) -> APP2(rev1, x)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(rev2, y)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(app2(cons, x), app2(app2(rev2, y), l))
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(cons, x)
APP2(rev, app2(app2(cons, x), l)) -> APP2(cons, app2(app2(rev1, x), l))
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(app2(rev1, y), l)
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(rev1, y)
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(rev1, x), l)
APP2(rev, app2(app2(cons, x), l)) -> APP2(rev2, x)
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(rev2, x), l)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(app2(rev2, y), l)
APP2(rev, app2(app2(cons, x), l)) -> APP2(rev1, x)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(rev2, y)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(app2(cons, x), app2(app2(rev2, y), l))
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(cons, x)
APP2(rev, app2(app2(cons, x), l)) -> APP2(cons, app2(app2(rev1, x), l))
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(app2(rev1, y), l)
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))
The following pairs can be strictly oriented and are deleted.
The remaining pairs can at least by weakly be oriented.
APP2(app2(rev1, x), app2(app2(cons, y), l)) -> APP2(app2(rev1, y), l)
[APP2, app2] > [rev1, cons]
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))
↳ QTRS
↳ Non-Overlap Check
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
APP2(rev, app2(app2(cons, x), l)) -> APP2(app2(rev2, x), l)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(app2(rev2, y), l)
APP2(app2(rev2, x), app2(app2(cons, y), l)) -> APP2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil) -> nil
app2(rev, app2(app2(cons, x), l)) -> app2(app2(cons, app2(app2(rev1, x), l)), app2(app2(rev2, x), l))
app2(app2(rev1, 0), nil) -> 0
app2(app2(rev1, app2(s, x)), nil) -> app2(s, x)
app2(app2(rev1, x), app2(app2(cons, y), l)) -> app2(app2(rev1, y), l)
app2(app2(rev2, x), nil) -> nil
app2(app2(rev2, x), app2(app2(cons, y), l)) -> app2(rev, app2(app2(cons, x), app2(app2(rev2, y), l)))
app2(rev, nil)
app2(rev, app2(app2(cons, x0), x1))
app2(app2(rev1, 0), nil)
app2(app2(rev1, app2(s, x0)), nil)
app2(app2(rev1, x0), app2(app2(cons, x1), x2))
app2(app2(rev2, x0), nil)
app2(app2(rev2, x0), app2(app2(cons, x1), x2))